#pragma once
// MESSAGE CHASSIS_LOG_DATA PACKING

#define MAVLINK_MSG_ID_CHASSIS_LOG_DATA 12921


typedef struct __mavlink_chassis_log_data_t {
 float chassis_voltage_power; /*<  float*/
 float chassis_voltage_ban; /*<  float*/
 float chassis_current_ban; /*<  float*/
 float chassis_current_guashui; /*<  float*/
 float chassis_current_panshua; /*<  float*/
 float chassis_current_diaodian; /*<  float*/
 float chassis_current_sucker_leg; /*<  float*/
 float chassis_current_brush1; /*<  float*/
 float chassis_current_brush2; /*<  float*/
 float chassis_current_brush3; /*<  float*/
 float chassis_current_brush4; /*<  float*/
 float chassis_pos_guashui; /*<  float*/
 float chassis_pos_panshua; /*<  float*/
 float chassis_pos_diaodian; /*<  float*/
 float chassis_pos_sucker_leg; /*<  float*/
 float chassis_chaosheng_up; /*<  float*/
 float chassis_chaosheng_down; /*<  float*/
 float tank_motor_speed_l; /*<  float*/
 float tank_motor_speed_r; /*<  float*/
 float tank_motor_current_l; /*<  float*/
 float tank_motor_current_r; /*<  float*/
 float tank_proximity_radar_top; /*<  float*/
 float tank_proximity_radar_bottom; /*<  float*/
 float tank_proximity_radar_left; /*<  float*/
 float tank_proximity_radar_right; /*<  float*/
 float tank_temp_fan; /*<  float*/
 float tank_system_cur; /*<  float*/
 float tank_system_vol; /*<  float*/
 float tank_pressure; /*<  float*/
 float tank_laser1; /*<  float*/
 float tank_laser2; /*<  float*/
 float tank_laser3; /*<  float*/
 float windlass_recv_count_ground; /*<  float*/
 float windlass_recv_count_uav; /*<  float*/
 float windlass_alarm_num; /*<  float*/
 float windlass_speed; /*<  float*/
 float windlass_voltage; /*<  float*/
 float windlass_current; /*<  float*/
 float windlass_position; /*<  float*/
 float windlass_upperLimit; /*<  float*/
 float windlass_lowerLimit; /*<  float*/
 uint8_t glb_status; /*<  uint8_t*/
 uint8_t using_yaw_flag; /*<  uint8_t*/
 uint8_t gps_status; /*<  uint8_t*/
 uint8_t rtk_net; /*<  uint8_t*/
 uint8_t t265_using_flag; /*<  uint8_t*/
 uint8_t t265_valid; /*<  uint8_t*/
 uint8_t mission_time; /*<  uint8_t*/
 uint8_t delay; /*<  uint8_t*/
} mavlink_chassis_log_data_t;

#define MAVLINK_MSG_ID_CHASSIS_LOG_DATA_LEN 172
#define MAVLINK_MSG_ID_CHASSIS_LOG_DATA_MIN_LEN 172
#define MAVLINK_MSG_ID_12921_LEN 172
#define MAVLINK_MSG_ID_12921_MIN_LEN 172

#define MAVLINK_MSG_ID_CHASSIS_LOG_DATA_CRC 222
#define MAVLINK_MSG_ID_12921_CRC 222



#if MAVLINK_COMMAND_24BIT
#define MAVLINK_MESSAGE_INFO_CHASSIS_LOG_DATA { \
    12921, \
    "CHASSIS_LOG_DATA", \
    49, \
    {  { "glb_status", NULL, MAVLINK_TYPE_UINT8_T, 0, 164, offsetof(mavlink_chassis_log_data_t, glb_status) }, \
         { "using_yaw_flag", NULL, MAVLINK_TYPE_UINT8_T, 0, 165, offsetof(mavlink_chassis_log_data_t, using_yaw_flag) }, \
         { "gps_status", NULL, MAVLINK_TYPE_UINT8_T, 0, 166, offsetof(mavlink_chassis_log_data_t, gps_status) }, \
         { "rtk_net", NULL, MAVLINK_TYPE_UINT8_T, 0, 167, offsetof(mavlink_chassis_log_data_t, rtk_net) }, \
         { "t265_using_flag", NULL, MAVLINK_TYPE_UINT8_T, 0, 168, offsetof(mavlink_chassis_log_data_t, t265_using_flag) }, \
         { "t265_valid", NULL, MAVLINK_TYPE_UINT8_T, 0, 169, offsetof(mavlink_chassis_log_data_t, t265_valid) }, \
         { "mission_time", NULL, MAVLINK_TYPE_UINT8_T, 0, 170, offsetof(mavlink_chassis_log_data_t, mission_time) }, \
         { "delay", NULL, MAVLINK_TYPE_UINT8_T, 0, 171, offsetof(mavlink_chassis_log_data_t, delay) }, \
         { "chassis_voltage_power", NULL, MAVLINK_TYPE_FLOAT, 0, 0, offsetof(mavlink_chassis_log_data_t, chassis_voltage_power) }, \
         { "chassis_voltage_ban", NULL, MAVLINK_TYPE_FLOAT, 0, 4, offsetof(mavlink_chassis_log_data_t, chassis_voltage_ban) }, \
         { "chassis_current_ban", NULL, MAVLINK_TYPE_FLOAT, 0, 8, offsetof(mavlink_chassis_log_data_t, chassis_current_ban) }, \
         { "chassis_current_guashui", NULL, MAVLINK_TYPE_FLOAT, 0, 12, offsetof(mavlink_chassis_log_data_t, chassis_current_guashui) }, \
         { "chassis_current_panshua", NULL, MAVLINK_TYPE_FLOAT, 0, 16, offsetof(mavlink_chassis_log_data_t, chassis_current_panshua) }, \
         { "chassis_current_diaodian", NULL, MAVLINK_TYPE_FLOAT, 0, 20, offsetof(mavlink_chassis_log_data_t, chassis_current_diaodian) }, \
         { "chassis_current_sucker_leg", NULL, MAVLINK_TYPE_FLOAT, 0, 24, offsetof(mavlink_chassis_log_data_t, chassis_current_sucker_leg) }, \
         { "chassis_current_brush1", NULL, MAVLINK_TYPE_FLOAT, 0, 28, offsetof(mavlink_chassis_log_data_t, chassis_current_brush1) }, \
         { "chassis_current_brush2", NULL, MAVLINK_TYPE_FLOAT, 0, 32, offsetof(mavlink_chassis_log_data_t, chassis_current_brush2) }, \
         { "chassis_current_brush3", NULL, MAVLINK_TYPE_FLOAT, 0, 36, offsetof(mavlink_chassis_log_data_t, chassis_current_brush3) }, \
         { "chassis_current_brush4", NULL, MAVLINK_TYPE_FLOAT, 0, 40, offsetof(mavlink_chassis_log_data_t, chassis_current_brush4) }, \
         { "chassis_pos_guashui", NULL, MAVLINK_TYPE_FLOAT, 0, 44, offsetof(mavlink_chassis_log_data_t, chassis_pos_guashui) }, \
         { "chassis_pos_panshua", NULL, MAVLINK_TYPE_FLOAT, 0, 48, offsetof(mavlink_chassis_log_data_t, chassis_pos_panshua) }, \
         { "chassis_pos_diaodian", NULL, MAVLINK_TYPE_FLOAT, 0, 52, offsetof(mavlink_chassis_log_data_t, chassis_pos_diaodian) }, \
         { "chassis_pos_sucker_leg", NULL, MAVLINK_TYPE_FLOAT, 0, 56, offsetof(mavlink_chassis_log_data_t, chassis_pos_sucker_leg) }, \
         { "chassis_chaosheng_up", NULL, MAVLINK_TYPE_FLOAT, 0, 60, offsetof(mavlink_chassis_log_data_t, chassis_chaosheng_up) }, \
         { "chassis_chaosheng_down", NULL, MAVLINK_TYPE_FLOAT, 0, 64, offsetof(mavlink_chassis_log_data_t, chassis_chaosheng_down) }, \
         { "tank_motor_speed_l", NULL, MAVLINK_TYPE_FLOAT, 0, 68, offsetof(mavlink_chassis_log_data_t, tank_motor_speed_l) }, \
         { "tank_motor_speed_r", NULL, MAVLINK_TYPE_FLOAT, 0, 72, offsetof(mavlink_chassis_log_data_t, tank_motor_speed_r) }, \
         { "tank_motor_current_l", NULL, MAVLINK_TYPE_FLOAT, 0, 76, offsetof(mavlink_chassis_log_data_t, tank_motor_current_l) }, \
         { "tank_motor_current_r", NULL, MAVLINK_TYPE_FLOAT, 0, 80, offsetof(mavlink_chassis_log_data_t, tank_motor_current_r) }, \
         { "tank_proximity_radar_top", NULL, MAVLINK_TYPE_FLOAT, 0, 84, offsetof(mavlink_chassis_log_data_t, tank_proximity_radar_top) }, \
         { "tank_proximity_radar_bottom", NULL, MAVLINK_TYPE_FLOAT, 0, 88, offsetof(mavlink_chassis_log_data_t, tank_proximity_radar_bottom) }, \
         { "tank_proximity_radar_left", NULL, MAVLINK_TYPE_FLOAT, 0, 92, offsetof(mavlink_chassis_log_data_t, tank_proximity_radar_left) }, \
         { "tank_proximity_radar_right", NULL, MAVLINK_TYPE_FLOAT, 0, 96, offsetof(mavlink_chassis_log_data_t, tank_proximity_radar_right) }, \
         { "tank_temp_fan", NULL, MAVLINK_TYPE_FLOAT, 0, 100, offsetof(mavlink_chassis_log_data_t, tank_temp_fan) }, \
         { "tank_system_cur", NULL, MAVLINK_TYPE_FLOAT, 0, 104, offsetof(mavlink_chassis_log_data_t, tank_system_cur) }, \
         { "tank_system_vol", NULL, MAVLINK_TYPE_FLOAT, 0, 108, offsetof(mavlink_chassis_log_data_t, tank_system_vol) }, \
         { "tank_pressure", NULL, MAVLINK_TYPE_FLOAT, 0, 112, offsetof(mavlink_chassis_log_data_t, tank_pressure) }, \
         { "tank_laser1", NULL, MAVLINK_TYPE_FLOAT, 0, 116, offsetof(mavlink_chassis_log_data_t, tank_laser1) }, \
         { "tank_laser2", NULL, MAVLINK_TYPE_FLOAT, 0, 120, offsetof(mavlink_chassis_log_data_t, tank_laser2) }, \
         { "tank_laser3", NULL, MAVLINK_TYPE_FLOAT, 0, 124, offsetof(mavlink_chassis_log_data_t, tank_laser3) }, \
         { "windlass_recv_count_ground", NULL, MAVLINK_TYPE_FLOAT, 0, 128, offsetof(mavlink_chassis_log_data_t, windlass_recv_count_ground) }, \
         { "windlass_recv_count_uav", NULL, MAVLINK_TYPE_FLOAT, 0, 132, offsetof(mavlink_chassis_log_data_t, windlass_recv_count_uav) }, \
         { "windlass_alarm_num", NULL, MAVLINK_TYPE_FLOAT, 0, 136, offsetof(mavlink_chassis_log_data_t, windlass_alarm_num) }, \
         { "windlass_speed", NULL, MAVLINK_TYPE_FLOAT, 0, 140, offsetof(mavlink_chassis_log_data_t, windlass_speed) }, \
         { "windlass_voltage", NULL, MAVLINK_TYPE_FLOAT, 0, 144, offsetof(mavlink_chassis_log_data_t, windlass_voltage) }, \
         { "windlass_current", NULL, MAVLINK_TYPE_FLOAT, 0, 148, offsetof(mavlink_chassis_log_data_t, windlass_current) }, \
         { "windlass_position", NULL, MAVLINK_TYPE_FLOAT, 0, 152, offsetof(mavlink_chassis_log_data_t, windlass_position) }, \
         { "windlass_upperLimit", NULL, MAVLINK_TYPE_FLOAT, 0, 156, offsetof(mavlink_chassis_log_data_t, windlass_upperLimit) }, \
         { "windlass_lowerLimit", NULL, MAVLINK_TYPE_FLOAT, 0, 160, offsetof(mavlink_chassis_log_data_t, windlass_lowerLimit) }, \
         } \
}
#else
#define MAVLINK_MESSAGE_INFO_CHASSIS_LOG_DATA { \
    "CHASSIS_LOG_DATA", \
    49, \
    {  { "glb_status", NULL, MAVLINK_TYPE_UINT8_T, 0, 164, offsetof(mavlink_chassis_log_data_t, glb_status) }, \
         { "using_yaw_flag", NULL, MAVLINK_TYPE_UINT8_T, 0, 165, offsetof(mavlink_chassis_log_data_t, using_yaw_flag) }, \
         { "gps_status", NULL, MAVLINK_TYPE_UINT8_T, 0, 166, offsetof(mavlink_chassis_log_data_t, gps_status) }, \
         { "rtk_net", NULL, MAVLINK_TYPE_UINT8_T, 0, 167, offsetof(mavlink_chassis_log_data_t, rtk_net) }, \
         { "t265_using_flag", NULL, MAVLINK_TYPE_UINT8_T, 0, 168, offsetof(mavlink_chassis_log_data_t, t265_using_flag) }, \
         { "t265_valid", NULL, MAVLINK_TYPE_UINT8_T, 0, 169, offsetof(mavlink_chassis_log_data_t, t265_valid) }, \
         { "mission_time", NULL, MAVLINK_TYPE_UINT8_T, 0, 170, offsetof(mavlink_chassis_log_data_t, mission_time) }, \
         { "delay", NULL, MAVLINK_TYPE_UINT8_T, 0, 171, offsetof(mavlink_chassis_log_data_t, delay) }, \
         { "chassis_voltage_power", NULL, MAVLINK_TYPE_FLOAT, 0, 0, offsetof(mavlink_chassis_log_data_t, chassis_voltage_power) }, \
         { "chassis_voltage_ban", NULL, MAVLINK_TYPE_FLOAT, 0, 4, offsetof(mavlink_chassis_log_data_t, chassis_voltage_ban) }, \
         { "chassis_current_ban", NULL, MAVLINK_TYPE_FLOAT, 0, 8, offsetof(mavlink_chassis_log_data_t, chassis_current_ban) }, \
         { "chassis_current_guashui", NULL, MAVLINK_TYPE_FLOAT, 0, 12, offsetof(mavlink_chassis_log_data_t, chassis_current_guashui) }, \
         { "chassis_current_panshua", NULL, MAVLINK_TYPE_FLOAT, 0, 16, offsetof(mavlink_chassis_log_data_t, chassis_current_panshua) }, \
         { "chassis_current_diaodian", NULL, MAVLINK_TYPE_FLOAT, 0, 20, offsetof(mavlink_chassis_log_data_t, chassis_current_diaodian) }, \
         { "chassis_current_sucker_leg", NULL, MAVLINK_TYPE_FLOAT, 0, 24, offsetof(mavlink_chassis_log_data_t, chassis_current_sucker_leg) }, \
         { "chassis_current_brush1", NULL, MAVLINK_TYPE_FLOAT, 0, 28, offsetof(mavlink_chassis_log_data_t, chassis_current_brush1) }, \
         { "chassis_current_brush2", NULL, MAVLINK_TYPE_FLOAT, 0, 32, offsetof(mavlink_chassis_log_data_t, chassis_current_brush2) }, \
         { "chassis_current_brush3", NULL, MAVLINK_TYPE_FLOAT, 0, 36, offsetof(mavlink_chassis_log_data_t, chassis_current_brush3) }, \
         { "chassis_current_brush4", NULL, MAVLINK_TYPE_FLOAT, 0, 40, offsetof(mavlink_chassis_log_data_t, chassis_current_brush4) }, \
         { "chassis_pos_guashui", NULL, MAVLINK_TYPE_FLOAT, 0, 44, offsetof(mavlink_chassis_log_data_t, chassis_pos_guashui) }, \
         { "chassis_pos_panshua", NULL, MAVLINK_TYPE_FLOAT, 0, 48, offsetof(mavlink_chassis_log_data_t, chassis_pos_panshua) }, \
         { "chassis_pos_diaodian", NULL, MAVLINK_TYPE_FLOAT, 0, 52, offsetof(mavlink_chassis_log_data_t, chassis_pos_diaodian) }, \
         { "chassis_pos_sucker_leg", NULL, MAVLINK_TYPE_FLOAT, 0, 56, offsetof(mavlink_chassis_log_data_t, chassis_pos_sucker_leg) }, \
         { "chassis_chaosheng_up", NULL, MAVLINK_TYPE_FLOAT, 0, 60, offsetof(mavlink_chassis_log_data_t, chassis_chaosheng_up) }, \
         { "chassis_chaosheng_down", NULL, MAVLINK_TYPE_FLOAT, 0, 64, offsetof(mavlink_chassis_log_data_t, chassis_chaosheng_down) }, \
         { "tank_motor_speed_l", NULL, MAVLINK_TYPE_FLOAT, 0, 68, offsetof(mavlink_chassis_log_data_t, tank_motor_speed_l) }, \
         { "tank_motor_speed_r", NULL, MAVLINK_TYPE_FLOAT, 0, 72, offsetof(mavlink_chassis_log_data_t, tank_motor_speed_r) }, \
         { "tank_motor_current_l", NULL, MAVLINK_TYPE_FLOAT, 0, 76, offsetof(mavlink_chassis_log_data_t, tank_motor_current_l) }, \
         { "tank_motor_current_r", NULL, MAVLINK_TYPE_FLOAT, 0, 80, offsetof(mavlink_chassis_log_data_t, tank_motor_current_r) }, \
         { "tank_proximity_radar_top", NULL, MAVLINK_TYPE_FLOAT, 0, 84, offsetof(mavlink_chassis_log_data_t, tank_proximity_radar_top) }, \
         { "tank_proximity_radar_bottom", NULL, MAVLINK_TYPE_FLOAT, 0, 88, offsetof(mavlink_chassis_log_data_t, tank_proximity_radar_bottom) }, \
         { "tank_proximity_radar_left", NULL, MAVLINK_TYPE_FLOAT, 0, 92, offsetof(mavlink_chassis_log_data_t, tank_proximity_radar_left) }, \
         { "tank_proximity_radar_right", NULL, MAVLINK_TYPE_FLOAT, 0, 96, offsetof(mavlink_chassis_log_data_t, tank_proximity_radar_right) }, \
         { "tank_temp_fan", NULL, MAVLINK_TYPE_FLOAT, 0, 100, offsetof(mavlink_chassis_log_data_t, tank_temp_fan) }, \
         { "tank_system_cur", NULL, MAVLINK_TYPE_FLOAT, 0, 104, offsetof(mavlink_chassis_log_data_t, tank_system_cur) }, \
         { "tank_system_vol", NULL, MAVLINK_TYPE_FLOAT, 0, 108, offsetof(mavlink_chassis_log_data_t, tank_system_vol) }, \
         { "tank_pressure", NULL, MAVLINK_TYPE_FLOAT, 0, 112, offsetof(mavlink_chassis_log_data_t, tank_pressure) }, \
         { "tank_laser1", NULL, MAVLINK_TYPE_FLOAT, 0, 116, offsetof(mavlink_chassis_log_data_t, tank_laser1) }, \
         { "tank_laser2", NULL, MAVLINK_TYPE_FLOAT, 0, 120, offsetof(mavlink_chassis_log_data_t, tank_laser2) }, \
         { "tank_laser3", NULL, MAVLINK_TYPE_FLOAT, 0, 124, offsetof(mavlink_chassis_log_data_t, tank_laser3) }, \
         { "windlass_recv_count_ground", NULL, MAVLINK_TYPE_FLOAT, 0, 128, offsetof(mavlink_chassis_log_data_t, windlass_recv_count_ground) }, \
         { "windlass_recv_count_uav", NULL, MAVLINK_TYPE_FLOAT, 0, 132, offsetof(mavlink_chassis_log_data_t, windlass_recv_count_uav) }, \
         { "windlass_alarm_num", NULL, MAVLINK_TYPE_FLOAT, 0, 136, offsetof(mavlink_chassis_log_data_t, windlass_alarm_num) }, \
         { "windlass_speed", NULL, MAVLINK_TYPE_FLOAT, 0, 140, offsetof(mavlink_chassis_log_data_t, windlass_speed) }, \
         { "windlass_voltage", NULL, MAVLINK_TYPE_FLOAT, 0, 144, offsetof(mavlink_chassis_log_data_t, windlass_voltage) }, \
         { "windlass_current", NULL, MAVLINK_TYPE_FLOAT, 0, 148, offsetof(mavlink_chassis_log_data_t, windlass_current) }, \
         { "windlass_position", NULL, MAVLINK_TYPE_FLOAT, 0, 152, offsetof(mavlink_chassis_log_data_t, windlass_position) }, \
         { "windlass_upperLimit", NULL, MAVLINK_TYPE_FLOAT, 0, 156, offsetof(mavlink_chassis_log_data_t, windlass_upperLimit) }, \
         { "windlass_lowerLimit", NULL, MAVLINK_TYPE_FLOAT, 0, 160, offsetof(mavlink_chassis_log_data_t, windlass_lowerLimit) }, \
         } \
}
#endif

/**
 * @brief Pack a chassis_log_data message
 * @param system_id ID of this system
 * @param component_id ID of this component (e.g. 200 for IMU)
 * @param msg The MAVLink message to compress the data into
 *
 * @param glb_status  uint8_t
 * @param using_yaw_flag  uint8_t
 * @param gps_status  uint8_t
 * @param rtk_net  uint8_t
 * @param t265_using_flag  uint8_t
 * @param t265_valid  uint8_t
 * @param mission_time  uint8_t
 * @param delay  uint8_t
 * @param chassis_voltage_power  float
 * @param chassis_voltage_ban  float
 * @param chassis_current_ban  float
 * @param chassis_current_guashui  float
 * @param chassis_current_panshua  float
 * @param chassis_current_diaodian  float
 * @param chassis_current_sucker_leg  float
 * @param chassis_current_brush1  float
 * @param chassis_current_brush2  float
 * @param chassis_current_brush3  float
 * @param chassis_current_brush4  float
 * @param chassis_pos_guashui  float
 * @param chassis_pos_panshua  float
 * @param chassis_pos_diaodian  float
 * @param chassis_pos_sucker_leg  float
 * @param chassis_chaosheng_up  float
 * @param chassis_chaosheng_down  float
 * @param tank_motor_speed_l  float
 * @param tank_motor_speed_r  float
 * @param tank_motor_current_l  float
 * @param tank_motor_current_r  float
 * @param tank_proximity_radar_top  float
 * @param tank_proximity_radar_bottom  float
 * @param tank_proximity_radar_left  float
 * @param tank_proximity_radar_right  float
 * @param tank_temp_fan  float
 * @param tank_system_cur  float
 * @param tank_system_vol  float
 * @param tank_pressure  float
 * @param tank_laser1  float
 * @param tank_laser2  float
 * @param tank_laser3  float
 * @param windlass_recv_count_ground  float
 * @param windlass_recv_count_uav  float
 * @param windlass_alarm_num  float
 * @param windlass_speed  float
 * @param windlass_voltage  float
 * @param windlass_current  float
 * @param windlass_position  float
 * @param windlass_upperLimit  float
 * @param windlass_lowerLimit  float
 * @return length of the message in bytes (excluding serial stream start sign)
 */
static inline uint16_t mavlink_msg_chassis_log_data_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg,
                               uint8_t glb_status, uint8_t using_yaw_flag, uint8_t gps_status, uint8_t rtk_net, uint8_t t265_using_flag, uint8_t t265_valid, uint8_t mission_time, uint8_t delay, float chassis_voltage_power, float chassis_voltage_ban, float chassis_current_ban, float chassis_current_guashui, float chassis_current_panshua, float chassis_current_diaodian, float chassis_current_sucker_leg, float chassis_current_brush1, float chassis_current_brush2, float chassis_current_brush3, float chassis_current_brush4, float chassis_pos_guashui, float chassis_pos_panshua, float chassis_pos_diaodian, float chassis_pos_sucker_leg, float chassis_chaosheng_up, float chassis_chaosheng_down, float tank_motor_speed_l, float tank_motor_speed_r, float tank_motor_current_l, float tank_motor_current_r, float tank_proximity_radar_top, float tank_proximity_radar_bottom, float tank_proximity_radar_left, float tank_proximity_radar_right, float tank_temp_fan, float tank_system_cur, float tank_system_vol, float tank_pressure, float tank_laser1, float tank_laser2, float tank_laser3, float windlass_recv_count_ground, float windlass_recv_count_uav, float windlass_alarm_num, float windlass_speed, float windlass_voltage, float windlass_current, float windlass_position, float windlass_upperLimit, float windlass_lowerLimit)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
    char buf[MAVLINK_MSG_ID_CHASSIS_LOG_DATA_LEN];
    _mav_put_float(buf, 0, chassis_voltage_power);
    _mav_put_float(buf, 4, chassis_voltage_ban);
    _mav_put_float(buf, 8, chassis_current_ban);
    _mav_put_float(buf, 12, chassis_current_guashui);
    _mav_put_float(buf, 16, chassis_current_panshua);
    _mav_put_float(buf, 20, chassis_current_diaodian);
    _mav_put_float(buf, 24, chassis_current_sucker_leg);
    _mav_put_float(buf, 28, chassis_current_brush1);
    _mav_put_float(buf, 32, chassis_current_brush2);
    _mav_put_float(buf, 36, chassis_current_brush3);
    _mav_put_float(buf, 40, chassis_current_brush4);
    _mav_put_float(buf, 44, chassis_pos_guashui);
    _mav_put_float(buf, 48, chassis_pos_panshua);
    _mav_put_float(buf, 52, chassis_pos_diaodian);
    _mav_put_float(buf, 56, chassis_pos_sucker_leg);
    _mav_put_float(buf, 60, chassis_chaosheng_up);
    _mav_put_float(buf, 64, chassis_chaosheng_down);
    _mav_put_float(buf, 68, tank_motor_speed_l);
    _mav_put_float(buf, 72, tank_motor_speed_r);
    _mav_put_float(buf, 76, tank_motor_current_l);
    _mav_put_float(buf, 80, tank_motor_current_r);
    _mav_put_float(buf, 84, tank_proximity_radar_top);
    _mav_put_float(buf, 88, tank_proximity_radar_bottom);
    _mav_put_float(buf, 92, tank_proximity_radar_left);
    _mav_put_float(buf, 96, tank_proximity_radar_right);
    _mav_put_float(buf, 100, tank_temp_fan);
    _mav_put_float(buf, 104, tank_system_cur);
    _mav_put_float(buf, 108, tank_system_vol);
    _mav_put_float(buf, 112, tank_pressure);
    _mav_put_float(buf, 116, tank_laser1);
    _mav_put_float(buf, 120, tank_laser2);
    _mav_put_float(buf, 124, tank_laser3);
    _mav_put_float(buf, 128, windlass_recv_count_ground);
    _mav_put_float(buf, 132, windlass_recv_count_uav);
    _mav_put_float(buf, 136, windlass_alarm_num);
    _mav_put_float(buf, 140, windlass_speed);
    _mav_put_float(buf, 144, windlass_voltage);
    _mav_put_float(buf, 148, windlass_current);
    _mav_put_float(buf, 152, windlass_position);
    _mav_put_float(buf, 156, windlass_upperLimit);
    _mav_put_float(buf, 160, windlass_lowerLimit);
    _mav_put_uint8_t(buf, 164, glb_status);
    _mav_put_uint8_t(buf, 165, using_yaw_flag);
    _mav_put_uint8_t(buf, 166, gps_status);
    _mav_put_uint8_t(buf, 167, rtk_net);
    _mav_put_uint8_t(buf, 168, t265_using_flag);
    _mav_put_uint8_t(buf, 169, t265_valid);
    _mav_put_uint8_t(buf, 170, mission_time);
    _mav_put_uint8_t(buf, 171, delay);

        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_CHASSIS_LOG_DATA_LEN);
#else
    mavlink_chassis_log_data_t packet;
    packet.chassis_voltage_power = chassis_voltage_power;
    packet.chassis_voltage_ban = chassis_voltage_ban;
    packet.chassis_current_ban = chassis_current_ban;
    packet.chassis_current_guashui = chassis_current_guashui;
    packet.chassis_current_panshua = chassis_current_panshua;
    packet.chassis_current_diaodian = chassis_current_diaodian;
    packet.chassis_current_sucker_leg = chassis_current_sucker_leg;
    packet.chassis_current_brush1 = chassis_current_brush1;
    packet.chassis_current_brush2 = chassis_current_brush2;
    packet.chassis_current_brush3 = chassis_current_brush3;
    packet.chassis_current_brush4 = chassis_current_brush4;
    packet.chassis_pos_guashui = chassis_pos_guashui;
    packet.chassis_pos_panshua = chassis_pos_panshua;
    packet.chassis_pos_diaodian = chassis_pos_diaodian;
    packet.chassis_pos_sucker_leg = chassis_pos_sucker_leg;
    packet.chassis_chaosheng_up = chassis_chaosheng_up;
    packet.chassis_chaosheng_down = chassis_chaosheng_down;
    packet.tank_motor_speed_l = tank_motor_speed_l;
    packet.tank_motor_speed_r = tank_motor_speed_r;
    packet.tank_motor_current_l = tank_motor_current_l;
    packet.tank_motor_current_r = tank_motor_current_r;
    packet.tank_proximity_radar_top = tank_proximity_radar_top;
    packet.tank_proximity_radar_bottom = tank_proximity_radar_bottom;
    packet.tank_proximity_radar_left = tank_proximity_radar_left;
    packet.tank_proximity_radar_right = tank_proximity_radar_right;
    packet.tank_temp_fan = tank_temp_fan;
    packet.tank_system_cur = tank_system_cur;
    packet.tank_system_vol = tank_system_vol;
    packet.tank_pressure = tank_pressure;
    packet.tank_laser1 = tank_laser1;
    packet.tank_laser2 = tank_laser2;
    packet.tank_laser3 = tank_laser3;
    packet.windlass_recv_count_ground = windlass_recv_count_ground;
    packet.windlass_recv_count_uav = windlass_recv_count_uav;
    packet.windlass_alarm_num = windlass_alarm_num;
    packet.windlass_speed = windlass_speed;
    packet.windlass_voltage = windlass_voltage;
    packet.windlass_current = windlass_current;
    packet.windlass_position = windlass_position;
    packet.windlass_upperLimit = windlass_upperLimit;
    packet.windlass_lowerLimit = windlass_lowerLimit;
    packet.glb_status = glb_status;
    packet.using_yaw_flag = using_yaw_flag;
    packet.gps_status = gps_status;
    packet.rtk_net = rtk_net;
    packet.t265_using_flag = t265_using_flag;
    packet.t265_valid = t265_valid;
    packet.mission_time = mission_time;
    packet.delay = delay;

        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_CHASSIS_LOG_DATA_LEN);
#endif

    msg->msgid = MAVLINK_MSG_ID_CHASSIS_LOG_DATA;
    return mavlink_finalize_message(msg, system_id, component_id, MAVLINK_MSG_ID_CHASSIS_LOG_DATA_MIN_LEN, MAVLINK_MSG_ID_CHASSIS_LOG_DATA_LEN, MAVLINK_MSG_ID_CHASSIS_LOG_DATA_CRC);
}

/**
 * @brief Pack a chassis_log_data message on a channel
 * @param system_id ID of this system
 * @param component_id ID of this component (e.g. 200 for IMU)
 * @param chan The MAVLink channel this message will be sent over
 * @param msg The MAVLink message to compress the data into
 * @param glb_status  uint8_t
 * @param using_yaw_flag  uint8_t
 * @param gps_status  uint8_t
 * @param rtk_net  uint8_t
 * @param t265_using_flag  uint8_t
 * @param t265_valid  uint8_t
 * @param mission_time  uint8_t
 * @param delay  uint8_t
 * @param chassis_voltage_power  float
 * @param chassis_voltage_ban  float
 * @param chassis_current_ban  float
 * @param chassis_current_guashui  float
 * @param chassis_current_panshua  float
 * @param chassis_current_diaodian  float
 * @param chassis_current_sucker_leg  float
 * @param chassis_current_brush1  float
 * @param chassis_current_brush2  float
 * @param chassis_current_brush3  float
 * @param chassis_current_brush4  float
 * @param chassis_pos_guashui  float
 * @param chassis_pos_panshua  float
 * @param chassis_pos_diaodian  float
 * @param chassis_pos_sucker_leg  float
 * @param chassis_chaosheng_up  float
 * @param chassis_chaosheng_down  float
 * @param tank_motor_speed_l  float
 * @param tank_motor_speed_r  float
 * @param tank_motor_current_l  float
 * @param tank_motor_current_r  float
 * @param tank_proximity_radar_top  float
 * @param tank_proximity_radar_bottom  float
 * @param tank_proximity_radar_left  float
 * @param tank_proximity_radar_right  float
 * @param tank_temp_fan  float
 * @param tank_system_cur  float
 * @param tank_system_vol  float
 * @param tank_pressure  float
 * @param tank_laser1  float
 * @param tank_laser2  float
 * @param tank_laser3  float
 * @param windlass_recv_count_ground  float
 * @param windlass_recv_count_uav  float
 * @param windlass_alarm_num  float
 * @param windlass_speed  float
 * @param windlass_voltage  float
 * @param windlass_current  float
 * @param windlass_position  float
 * @param windlass_upperLimit  float
 * @param windlass_lowerLimit  float
 * @return length of the message in bytes (excluding serial stream start sign)
 */
static inline uint16_t mavlink_msg_chassis_log_data_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan,
                               mavlink_message_t* msg,
                                   uint8_t glb_status,uint8_t using_yaw_flag,uint8_t gps_status,uint8_t rtk_net,uint8_t t265_using_flag,uint8_t t265_valid,uint8_t mission_time,uint8_t delay,float chassis_voltage_power,float chassis_voltage_ban,float chassis_current_ban,float chassis_current_guashui,float chassis_current_panshua,float chassis_current_diaodian,float chassis_current_sucker_leg,float chassis_current_brush1,float chassis_current_brush2,float chassis_current_brush3,float chassis_current_brush4,float chassis_pos_guashui,float chassis_pos_panshua,float chassis_pos_diaodian,float chassis_pos_sucker_leg,float chassis_chaosheng_up,float chassis_chaosheng_down,float tank_motor_speed_l,float tank_motor_speed_r,float tank_motor_current_l,float tank_motor_current_r,float tank_proximity_radar_top,float tank_proximity_radar_bottom,float tank_proximity_radar_left,float tank_proximity_radar_right,float tank_temp_fan,float tank_system_cur,float tank_system_vol,float tank_pressure,float tank_laser1,float tank_laser2,float tank_laser3,float windlass_recv_count_ground,float windlass_recv_count_uav,float windlass_alarm_num,float windlass_speed,float windlass_voltage,float windlass_current,float windlass_position,float windlass_upperLimit,float windlass_lowerLimit)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
    char buf[MAVLINK_MSG_ID_CHASSIS_LOG_DATA_LEN];
    _mav_put_float(buf, 0, chassis_voltage_power);
    _mav_put_float(buf, 4, chassis_voltage_ban);
    _mav_put_float(buf, 8, chassis_current_ban);
    _mav_put_float(buf, 12, chassis_current_guashui);
    _mav_put_float(buf, 16, chassis_current_panshua);
    _mav_put_float(buf, 20, chassis_current_diaodian);
    _mav_put_float(buf, 24, chassis_current_sucker_leg);
    _mav_put_float(buf, 28, chassis_current_brush1);
    _mav_put_float(buf, 32, chassis_current_brush2);
    _mav_put_float(buf, 36, chassis_current_brush3);
    _mav_put_float(buf, 40, chassis_current_brush4);
    _mav_put_float(buf, 44, chassis_pos_guashui);
    _mav_put_float(buf, 48, chassis_pos_panshua);
    _mav_put_float(buf, 52, chassis_pos_diaodian);
    _mav_put_float(buf, 56, chassis_pos_sucker_leg);
    _mav_put_float(buf, 60, chassis_chaosheng_up);
    _mav_put_float(buf, 64, chassis_chaosheng_down);
    _mav_put_float(buf, 68, tank_motor_speed_l);
    _mav_put_float(buf, 72, tank_motor_speed_r);
    _mav_put_float(buf, 76, tank_motor_current_l);
    _mav_put_float(buf, 80, tank_motor_current_r);
    _mav_put_float(buf, 84, tank_proximity_radar_top);
    _mav_put_float(buf, 88, tank_proximity_radar_bottom);
    _mav_put_float(buf, 92, tank_proximity_radar_left);
    _mav_put_float(buf, 96, tank_proximity_radar_right);
    _mav_put_float(buf, 100, tank_temp_fan);
    _mav_put_float(buf, 104, tank_system_cur);
    _mav_put_float(buf, 108, tank_system_vol);
    _mav_put_float(buf, 112, tank_pressure);
    _mav_put_float(buf, 116, tank_laser1);
    _mav_put_float(buf, 120, tank_laser2);
    _mav_put_float(buf, 124, tank_laser3);
    _mav_put_float(buf, 128, windlass_recv_count_ground);
    _mav_put_float(buf, 132, windlass_recv_count_uav);
    _mav_put_float(buf, 136, windlass_alarm_num);
    _mav_put_float(buf, 140, windlass_speed);
    _mav_put_float(buf, 144, windlass_voltage);
    _mav_put_float(buf, 148, windlass_current);
    _mav_put_float(buf, 152, windlass_position);
    _mav_put_float(buf, 156, windlass_upperLimit);
    _mav_put_float(buf, 160, windlass_lowerLimit);
    _mav_put_uint8_t(buf, 164, glb_status);
    _mav_put_uint8_t(buf, 165, using_yaw_flag);
    _mav_put_uint8_t(buf, 166, gps_status);
    _mav_put_uint8_t(buf, 167, rtk_net);
    _mav_put_uint8_t(buf, 168, t265_using_flag);
    _mav_put_uint8_t(buf, 169, t265_valid);
    _mav_put_uint8_t(buf, 170, mission_time);
    _mav_put_uint8_t(buf, 171, delay);

        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_CHASSIS_LOG_DATA_LEN);
#else
    mavlink_chassis_log_data_t packet;
    packet.chassis_voltage_power = chassis_voltage_power;
    packet.chassis_voltage_ban = chassis_voltage_ban;
    packet.chassis_current_ban = chassis_current_ban;
    packet.chassis_current_guashui = chassis_current_guashui;
    packet.chassis_current_panshua = chassis_current_panshua;
    packet.chassis_current_diaodian = chassis_current_diaodian;
    packet.chassis_current_sucker_leg = chassis_current_sucker_leg;
    packet.chassis_current_brush1 = chassis_current_brush1;
    packet.chassis_current_brush2 = chassis_current_brush2;
    packet.chassis_current_brush3 = chassis_current_brush3;
    packet.chassis_current_brush4 = chassis_current_brush4;
    packet.chassis_pos_guashui = chassis_pos_guashui;
    packet.chassis_pos_panshua = chassis_pos_panshua;
    packet.chassis_pos_diaodian = chassis_pos_diaodian;
    packet.chassis_pos_sucker_leg = chassis_pos_sucker_leg;
    packet.chassis_chaosheng_up = chassis_chaosheng_up;
    packet.chassis_chaosheng_down = chassis_chaosheng_down;
    packet.tank_motor_speed_l = tank_motor_speed_l;
    packet.tank_motor_speed_r = tank_motor_speed_r;
    packet.tank_motor_current_l = tank_motor_current_l;
    packet.tank_motor_current_r = tank_motor_current_r;
    packet.tank_proximity_radar_top = tank_proximity_radar_top;
    packet.tank_proximity_radar_bottom = tank_proximity_radar_bottom;
    packet.tank_proximity_radar_left = tank_proximity_radar_left;
    packet.tank_proximity_radar_right = tank_proximity_radar_right;
    packet.tank_temp_fan = tank_temp_fan;
    packet.tank_system_cur = tank_system_cur;
    packet.tank_system_vol = tank_system_vol;
    packet.tank_pressure = tank_pressure;
    packet.tank_laser1 = tank_laser1;
    packet.tank_laser2 = tank_laser2;
    packet.tank_laser3 = tank_laser3;
    packet.windlass_recv_count_ground = windlass_recv_count_ground;
    packet.windlass_recv_count_uav = windlass_recv_count_uav;
    packet.windlass_alarm_num = windlass_alarm_num;
    packet.windlass_speed = windlass_speed;
    packet.windlass_voltage = windlass_voltage;
    packet.windlass_current = windlass_current;
    packet.windlass_position = windlass_position;
    packet.windlass_upperLimit = windlass_upperLimit;
    packet.windlass_lowerLimit = windlass_lowerLimit;
    packet.glb_status = glb_status;
    packet.using_yaw_flag = using_yaw_flag;
    packet.gps_status = gps_status;
    packet.rtk_net = rtk_net;
    packet.t265_using_flag = t265_using_flag;
    packet.t265_valid = t265_valid;
    packet.mission_time = mission_time;
    packet.delay = delay;

        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_CHASSIS_LOG_DATA_LEN);
#endif

    msg->msgid = MAVLINK_MSG_ID_CHASSIS_LOG_DATA;
    return mavlink_finalize_message_chan(msg, system_id, component_id, chan, MAVLINK_MSG_ID_CHASSIS_LOG_DATA_MIN_LEN, MAVLINK_MSG_ID_CHASSIS_LOG_DATA_LEN, MAVLINK_MSG_ID_CHASSIS_LOG_DATA_CRC);
}

/**
 * @brief Encode a chassis_log_data struct
 *
 * @param system_id ID of this system
 * @param component_id ID of this component (e.g. 200 for IMU)
 * @param msg The MAVLink message to compress the data into
 * @param chassis_log_data C-struct to read the message contents from
 */
static inline uint16_t mavlink_msg_chassis_log_data_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_chassis_log_data_t* chassis_log_data)
{
    return mavlink_msg_chassis_log_data_pack(system_id, component_id, msg, chassis_log_data->glb_status, chassis_log_data->using_yaw_flag, chassis_log_data->gps_status, chassis_log_data->rtk_net, chassis_log_data->t265_using_flag, chassis_log_data->t265_valid, chassis_log_data->mission_time, chassis_log_data->delay, chassis_log_data->chassis_voltage_power, chassis_log_data->chassis_voltage_ban, chassis_log_data->chassis_current_ban, chassis_log_data->chassis_current_guashui, chassis_log_data->chassis_current_panshua, chassis_log_data->chassis_current_diaodian, chassis_log_data->chassis_current_sucker_leg, chassis_log_data->chassis_current_brush1, chassis_log_data->chassis_current_brush2, chassis_log_data->chassis_current_brush3, chassis_log_data->chassis_current_brush4, chassis_log_data->chassis_pos_guashui, chassis_log_data->chassis_pos_panshua, chassis_log_data->chassis_pos_diaodian, chassis_log_data->chassis_pos_sucker_leg, chassis_log_data->chassis_chaosheng_up, chassis_log_data->chassis_chaosheng_down, chassis_log_data->tank_motor_speed_l, chassis_log_data->tank_motor_speed_r, chassis_log_data->tank_motor_current_l, chassis_log_data->tank_motor_current_r, chassis_log_data->tank_proximity_radar_top, chassis_log_data->tank_proximity_radar_bottom, chassis_log_data->tank_proximity_radar_left, chassis_log_data->tank_proximity_radar_right, chassis_log_data->tank_temp_fan, chassis_log_data->tank_system_cur, chassis_log_data->tank_system_vol, chassis_log_data->tank_pressure, chassis_log_data->tank_laser1, chassis_log_data->tank_laser2, chassis_log_data->tank_laser3, chassis_log_data->windlass_recv_count_ground, chassis_log_data->windlass_recv_count_uav, chassis_log_data->windlass_alarm_num, chassis_log_data->windlass_speed, chassis_log_data->windlass_voltage, chassis_log_data->windlass_current, chassis_log_data->windlass_position, chassis_log_data->windlass_upperLimit, chassis_log_data->windlass_lowerLimit);
}

/**
 * @brief Encode a chassis_log_data struct on a channel
 *
 * @param system_id ID of this system
 * @param component_id ID of this component (e.g. 200 for IMU)
 * @param chan The MAVLink channel this message will be sent over
 * @param msg The MAVLink message to compress the data into
 * @param chassis_log_data C-struct to read the message contents from
 */
static inline uint16_t mavlink_msg_chassis_log_data_encode_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, mavlink_message_t* msg, const mavlink_chassis_log_data_t* chassis_log_data)
{
    return mavlink_msg_chassis_log_data_pack_chan(system_id, component_id, chan, msg, chassis_log_data->glb_status, chassis_log_data->using_yaw_flag, chassis_log_data->gps_status, chassis_log_data->rtk_net, chassis_log_data->t265_using_flag, chassis_log_data->t265_valid, chassis_log_data->mission_time, chassis_log_data->delay, chassis_log_data->chassis_voltage_power, chassis_log_data->chassis_voltage_ban, chassis_log_data->chassis_current_ban, chassis_log_data->chassis_current_guashui, chassis_log_data->chassis_current_panshua, chassis_log_data->chassis_current_diaodian, chassis_log_data->chassis_current_sucker_leg, chassis_log_data->chassis_current_brush1, chassis_log_data->chassis_current_brush2, chassis_log_data->chassis_current_brush3, chassis_log_data->chassis_current_brush4, chassis_log_data->chassis_pos_guashui, chassis_log_data->chassis_pos_panshua, chassis_log_data->chassis_pos_diaodian, chassis_log_data->chassis_pos_sucker_leg, chassis_log_data->chassis_chaosheng_up, chassis_log_data->chassis_chaosheng_down, chassis_log_data->tank_motor_speed_l, chassis_log_data->tank_motor_speed_r, chassis_log_data->tank_motor_current_l, chassis_log_data->tank_motor_current_r, chassis_log_data->tank_proximity_radar_top, chassis_log_data->tank_proximity_radar_bottom, chassis_log_data->tank_proximity_radar_left, chassis_log_data->tank_proximity_radar_right, chassis_log_data->tank_temp_fan, chassis_log_data->tank_system_cur, chassis_log_data->tank_system_vol, chassis_log_data->tank_pressure, chassis_log_data->tank_laser1, chassis_log_data->tank_laser2, chassis_log_data->tank_laser3, chassis_log_data->windlass_recv_count_ground, chassis_log_data->windlass_recv_count_uav, chassis_log_data->windlass_alarm_num, chassis_log_data->windlass_speed, chassis_log_data->windlass_voltage, chassis_log_data->windlass_current, chassis_log_data->windlass_position, chassis_log_data->windlass_upperLimit, chassis_log_data->windlass_lowerLimit);
}

/**
 * @brief Send a chassis_log_data message
 * @param chan MAVLink channel to send the message
 *
 * @param glb_status  uint8_t
 * @param using_yaw_flag  uint8_t
 * @param gps_status  uint8_t
 * @param rtk_net  uint8_t
 * @param t265_using_flag  uint8_t
 * @param t265_valid  uint8_t
 * @param mission_time  uint8_t
 * @param delay  uint8_t
 * @param chassis_voltage_power  float
 * @param chassis_voltage_ban  float
 * @param chassis_current_ban  float
 * @param chassis_current_guashui  float
 * @param chassis_current_panshua  float
 * @param chassis_current_diaodian  float
 * @param chassis_current_sucker_leg  float
 * @param chassis_current_brush1  float
 * @param chassis_current_brush2  float
 * @param chassis_current_brush3  float
 * @param chassis_current_brush4  float
 * @param chassis_pos_guashui  float
 * @param chassis_pos_panshua  float
 * @param chassis_pos_diaodian  float
 * @param chassis_pos_sucker_leg  float
 * @param chassis_chaosheng_up  float
 * @param chassis_chaosheng_down  float
 * @param tank_motor_speed_l  float
 * @param tank_motor_speed_r  float
 * @param tank_motor_current_l  float
 * @param tank_motor_current_r  float
 * @param tank_proximity_radar_top  float
 * @param tank_proximity_radar_bottom  float
 * @param tank_proximity_radar_left  float
 * @param tank_proximity_radar_right  float
 * @param tank_temp_fan  float
 * @param tank_system_cur  float
 * @param tank_system_vol  float
 * @param tank_pressure  float
 * @param tank_laser1  float
 * @param tank_laser2  float
 * @param tank_laser3  float
 * @param windlass_recv_count_ground  float
 * @param windlass_recv_count_uav  float
 * @param windlass_alarm_num  float
 * @param windlass_speed  float
 * @param windlass_voltage  float
 * @param windlass_current  float
 * @param windlass_position  float
 * @param windlass_upperLimit  float
 * @param windlass_lowerLimit  float
 */
#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS

static inline void mavlink_msg_chassis_log_data_send(mavlink_channel_t chan, uint8_t glb_status, uint8_t using_yaw_flag, uint8_t gps_status, uint8_t rtk_net, uint8_t t265_using_flag, uint8_t t265_valid, uint8_t mission_time, uint8_t delay, float chassis_voltage_power, float chassis_voltage_ban, float chassis_current_ban, float chassis_current_guashui, float chassis_current_panshua, float chassis_current_diaodian, float chassis_current_sucker_leg, float chassis_current_brush1, float chassis_current_brush2, float chassis_current_brush3, float chassis_current_brush4, float chassis_pos_guashui, float chassis_pos_panshua, float chassis_pos_diaodian, float chassis_pos_sucker_leg, float chassis_chaosheng_up, float chassis_chaosheng_down, float tank_motor_speed_l, float tank_motor_speed_r, float tank_motor_current_l, float tank_motor_current_r, float tank_proximity_radar_top, float tank_proximity_radar_bottom, float tank_proximity_radar_left, float tank_proximity_radar_right, float tank_temp_fan, float tank_system_cur, float tank_system_vol, float tank_pressure, float tank_laser1, float tank_laser2, float tank_laser3, float windlass_recv_count_ground, float windlass_recv_count_uav, float windlass_alarm_num, float windlass_speed, float windlass_voltage, float windlass_current, float windlass_position, float windlass_upperLimit, float windlass_lowerLimit)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
    char buf[MAVLINK_MSG_ID_CHASSIS_LOG_DATA_LEN];
    _mav_put_float(buf, 0, chassis_voltage_power);
    _mav_put_float(buf, 4, chassis_voltage_ban);
    _mav_put_float(buf, 8, chassis_current_ban);
    _mav_put_float(buf, 12, chassis_current_guashui);
    _mav_put_float(buf, 16, chassis_current_panshua);
    _mav_put_float(buf, 20, chassis_current_diaodian);
    _mav_put_float(buf, 24, chassis_current_sucker_leg);
    _mav_put_float(buf, 28, chassis_current_brush1);
    _mav_put_float(buf, 32, chassis_current_brush2);
    _mav_put_float(buf, 36, chassis_current_brush3);
    _mav_put_float(buf, 40, chassis_current_brush4);
    _mav_put_float(buf, 44, chassis_pos_guashui);
    _mav_put_float(buf, 48, chassis_pos_panshua);
    _mav_put_float(buf, 52, chassis_pos_diaodian);
    _mav_put_float(buf, 56, chassis_pos_sucker_leg);
    _mav_put_float(buf, 60, chassis_chaosheng_up);
    _mav_put_float(buf, 64, chassis_chaosheng_down);
    _mav_put_float(buf, 68, tank_motor_speed_l);
    _mav_put_float(buf, 72, tank_motor_speed_r);
    _mav_put_float(buf, 76, tank_motor_current_l);
    _mav_put_float(buf, 80, tank_motor_current_r);
    _mav_put_float(buf, 84, tank_proximity_radar_top);
    _mav_put_float(buf, 88, tank_proximity_radar_bottom);
    _mav_put_float(buf, 92, tank_proximity_radar_left);
    _mav_put_float(buf, 96, tank_proximity_radar_right);
    _mav_put_float(buf, 100, tank_temp_fan);
    _mav_put_float(buf, 104, tank_system_cur);
    _mav_put_float(buf, 108, tank_system_vol);
    _mav_put_float(buf, 112, tank_pressure);
    _mav_put_float(buf, 116, tank_laser1);
    _mav_put_float(buf, 120, tank_laser2);
    _mav_put_float(buf, 124, tank_laser3);
    _mav_put_float(buf, 128, windlass_recv_count_ground);
    _mav_put_float(buf, 132, windlass_recv_count_uav);
    _mav_put_float(buf, 136, windlass_alarm_num);
    _mav_put_float(buf, 140, windlass_speed);
    _mav_put_float(buf, 144, windlass_voltage);
    _mav_put_float(buf, 148, windlass_current);
    _mav_put_float(buf, 152, windlass_position);
    _mav_put_float(buf, 156, windlass_upperLimit);
    _mav_put_float(buf, 160, windlass_lowerLimit);
    _mav_put_uint8_t(buf, 164, glb_status);
    _mav_put_uint8_t(buf, 165, using_yaw_flag);
    _mav_put_uint8_t(buf, 166, gps_status);
    _mav_put_uint8_t(buf, 167, rtk_net);
    _mav_put_uint8_t(buf, 168, t265_using_flag);
    _mav_put_uint8_t(buf, 169, t265_valid);
    _mav_put_uint8_t(buf, 170, mission_time);
    _mav_put_uint8_t(buf, 171, delay);

    _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_CHASSIS_LOG_DATA, buf, MAVLINK_MSG_ID_CHASSIS_LOG_DATA_MIN_LEN, MAVLINK_MSG_ID_CHASSIS_LOG_DATA_LEN, MAVLINK_MSG_ID_CHASSIS_LOG_DATA_CRC);
#else
    mavlink_chassis_log_data_t packet;
    packet.chassis_voltage_power = chassis_voltage_power;
    packet.chassis_voltage_ban = chassis_voltage_ban;
    packet.chassis_current_ban = chassis_current_ban;
    packet.chassis_current_guashui = chassis_current_guashui;
    packet.chassis_current_panshua = chassis_current_panshua;
    packet.chassis_current_diaodian = chassis_current_diaodian;
    packet.chassis_current_sucker_leg = chassis_current_sucker_leg;
    packet.chassis_current_brush1 = chassis_current_brush1;
    packet.chassis_current_brush2 = chassis_current_brush2;
    packet.chassis_current_brush3 = chassis_current_brush3;
    packet.chassis_current_brush4 = chassis_current_brush4;
    packet.chassis_pos_guashui = chassis_pos_guashui;
    packet.chassis_pos_panshua = chassis_pos_panshua;
    packet.chassis_pos_diaodian = chassis_pos_diaodian;
    packet.chassis_pos_sucker_leg = chassis_pos_sucker_leg;
    packet.chassis_chaosheng_up = chassis_chaosheng_up;
    packet.chassis_chaosheng_down = chassis_chaosheng_down;
    packet.tank_motor_speed_l = tank_motor_speed_l;
    packet.tank_motor_speed_r = tank_motor_speed_r;
    packet.tank_motor_current_l = tank_motor_current_l;
    packet.tank_motor_current_r = tank_motor_current_r;
    packet.tank_proximity_radar_top = tank_proximity_radar_top;
    packet.tank_proximity_radar_bottom = tank_proximity_radar_bottom;
    packet.tank_proximity_radar_left = tank_proximity_radar_left;
    packet.tank_proximity_radar_right = tank_proximity_radar_right;
    packet.tank_temp_fan = tank_temp_fan;
    packet.tank_system_cur = tank_system_cur;
    packet.tank_system_vol = tank_system_vol;
    packet.tank_pressure = tank_pressure;
    packet.tank_laser1 = tank_laser1;
    packet.tank_laser2 = tank_laser2;
    packet.tank_laser3 = tank_laser3;
    packet.windlass_recv_count_ground = windlass_recv_count_ground;
    packet.windlass_recv_count_uav = windlass_recv_count_uav;
    packet.windlass_alarm_num = windlass_alarm_num;
    packet.windlass_speed = windlass_speed;
    packet.windlass_voltage = windlass_voltage;
    packet.windlass_current = windlass_current;
    packet.windlass_position = windlass_position;
    packet.windlass_upperLimit = windlass_upperLimit;
    packet.windlass_lowerLimit = windlass_lowerLimit;
    packet.glb_status = glb_status;
    packet.using_yaw_flag = using_yaw_flag;
    packet.gps_status = gps_status;
    packet.rtk_net = rtk_net;
    packet.t265_using_flag = t265_using_flag;
    packet.t265_valid = t265_valid;
    packet.mission_time = mission_time;
    packet.delay = delay;

    _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_CHASSIS_LOG_DATA, (const char *)&packet, MAVLINK_MSG_ID_CHASSIS_LOG_DATA_MIN_LEN, MAVLINK_MSG_ID_CHASSIS_LOG_DATA_LEN, MAVLINK_MSG_ID_CHASSIS_LOG_DATA_CRC);
#endif
}

/**
 * @brief Send a chassis_log_data message
 * @param chan MAVLink channel to send the message
 * @param struct The MAVLink struct to serialize
 */
static inline void mavlink_msg_chassis_log_data_send_struct(mavlink_channel_t chan, const mavlink_chassis_log_data_t* chassis_log_data)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
    mavlink_msg_chassis_log_data_send(chan, chassis_log_data->glb_status, chassis_log_data->using_yaw_flag, chassis_log_data->gps_status, chassis_log_data->rtk_net, chassis_log_data->t265_using_flag, chassis_log_data->t265_valid, chassis_log_data->mission_time, chassis_log_data->delay, chassis_log_data->chassis_voltage_power, chassis_log_data->chassis_voltage_ban, chassis_log_data->chassis_current_ban, chassis_log_data->chassis_current_guashui, chassis_log_data->chassis_current_panshua, chassis_log_data->chassis_current_diaodian, chassis_log_data->chassis_current_sucker_leg, chassis_log_data->chassis_current_brush1, chassis_log_data->chassis_current_brush2, chassis_log_data->chassis_current_brush3, chassis_log_data->chassis_current_brush4, chassis_log_data->chassis_pos_guashui, chassis_log_data->chassis_pos_panshua, chassis_log_data->chassis_pos_diaodian, chassis_log_data->chassis_pos_sucker_leg, chassis_log_data->chassis_chaosheng_up, chassis_log_data->chassis_chaosheng_down, chassis_log_data->tank_motor_speed_l, chassis_log_data->tank_motor_speed_r, chassis_log_data->tank_motor_current_l, chassis_log_data->tank_motor_current_r, chassis_log_data->tank_proximity_radar_top, chassis_log_data->tank_proximity_radar_bottom, chassis_log_data->tank_proximity_radar_left, chassis_log_data->tank_proximity_radar_right, chassis_log_data->tank_temp_fan, chassis_log_data->tank_system_cur, chassis_log_data->tank_system_vol, chassis_log_data->tank_pressure, chassis_log_data->tank_laser1, chassis_log_data->tank_laser2, chassis_log_data->tank_laser3, chassis_log_data->windlass_recv_count_ground, chassis_log_data->windlass_recv_count_uav, chassis_log_data->windlass_alarm_num, chassis_log_data->windlass_speed, chassis_log_data->windlass_voltage, chassis_log_data->windlass_current, chassis_log_data->windlass_position, chassis_log_data->windlass_upperLimit, chassis_log_data->windlass_lowerLimit);
#else
    _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_CHASSIS_LOG_DATA, (const char *)chassis_log_data, MAVLINK_MSG_ID_CHASSIS_LOG_DATA_MIN_LEN, MAVLINK_MSG_ID_CHASSIS_LOG_DATA_LEN, MAVLINK_MSG_ID_CHASSIS_LOG_DATA_CRC);
#endif
}

#if MAVLINK_MSG_ID_CHASSIS_LOG_DATA_LEN <= MAVLINK_MAX_PAYLOAD_LEN
/*
  This variant of _send() can be used to save stack space by re-using
  memory from the receive buffer.  The caller provides a
  mavlink_message_t which is the size of a full mavlink message. This
  is usually the receive buffer for the channel, and allows a reply to an
  incoming message with minimum stack space usage.
 */
static inline void mavlink_msg_chassis_log_data_send_buf(mavlink_message_t *msgbuf, mavlink_channel_t chan,  uint8_t glb_status, uint8_t using_yaw_flag, uint8_t gps_status, uint8_t rtk_net, uint8_t t265_using_flag, uint8_t t265_valid, uint8_t mission_time, uint8_t delay, float chassis_voltage_power, float chassis_voltage_ban, float chassis_current_ban, float chassis_current_guashui, float chassis_current_panshua, float chassis_current_diaodian, float chassis_current_sucker_leg, float chassis_current_brush1, float chassis_current_brush2, float chassis_current_brush3, float chassis_current_brush4, float chassis_pos_guashui, float chassis_pos_panshua, float chassis_pos_diaodian, float chassis_pos_sucker_leg, float chassis_chaosheng_up, float chassis_chaosheng_down, float tank_motor_speed_l, float tank_motor_speed_r, float tank_motor_current_l, float tank_motor_current_r, float tank_proximity_radar_top, float tank_proximity_radar_bottom, float tank_proximity_radar_left, float tank_proximity_radar_right, float tank_temp_fan, float tank_system_cur, float tank_system_vol, float tank_pressure, float tank_laser1, float tank_laser2, float tank_laser3, float windlass_recv_count_ground, float windlass_recv_count_uav, float windlass_alarm_num, float windlass_speed, float windlass_voltage, float windlass_current, float windlass_position, float windlass_upperLimit, float windlass_lowerLimit)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
    char *buf = (char *)msgbuf;
    _mav_put_float(buf, 0, chassis_voltage_power);
    _mav_put_float(buf, 4, chassis_voltage_ban);
    _mav_put_float(buf, 8, chassis_current_ban);
    _mav_put_float(buf, 12, chassis_current_guashui);
    _mav_put_float(buf, 16, chassis_current_panshua);
    _mav_put_float(buf, 20, chassis_current_diaodian);
    _mav_put_float(buf, 24, chassis_current_sucker_leg);
    _mav_put_float(buf, 28, chassis_current_brush1);
    _mav_put_float(buf, 32, chassis_current_brush2);
    _mav_put_float(buf, 36, chassis_current_brush3);
    _mav_put_float(buf, 40, chassis_current_brush4);
    _mav_put_float(buf, 44, chassis_pos_guashui);
    _mav_put_float(buf, 48, chassis_pos_panshua);
    _mav_put_float(buf, 52, chassis_pos_diaodian);
    _mav_put_float(buf, 56, chassis_pos_sucker_leg);
    _mav_put_float(buf, 60, chassis_chaosheng_up);
    _mav_put_float(buf, 64, chassis_chaosheng_down);
    _mav_put_float(buf, 68, tank_motor_speed_l);
    _mav_put_float(buf, 72, tank_motor_speed_r);
    _mav_put_float(buf, 76, tank_motor_current_l);
    _mav_put_float(buf, 80, tank_motor_current_r);
    _mav_put_float(buf, 84, tank_proximity_radar_top);
    _mav_put_float(buf, 88, tank_proximity_radar_bottom);
    _mav_put_float(buf, 92, tank_proximity_radar_left);
    _mav_put_float(buf, 96, tank_proximity_radar_right);
    _mav_put_float(buf, 100, tank_temp_fan);
    _mav_put_float(buf, 104, tank_system_cur);
    _mav_put_float(buf, 108, tank_system_vol);
    _mav_put_float(buf, 112, tank_pressure);
    _mav_put_float(buf, 116, tank_laser1);
    _mav_put_float(buf, 120, tank_laser2);
    _mav_put_float(buf, 124, tank_laser3);
    _mav_put_float(buf, 128, windlass_recv_count_ground);
    _mav_put_float(buf, 132, windlass_recv_count_uav);
    _mav_put_float(buf, 136, windlass_alarm_num);
    _mav_put_float(buf, 140, windlass_speed);
    _mav_put_float(buf, 144, windlass_voltage);
    _mav_put_float(buf, 148, windlass_current);
    _mav_put_float(buf, 152, windlass_position);
    _mav_put_float(buf, 156, windlass_upperLimit);
    _mav_put_float(buf, 160, windlass_lowerLimit);
    _mav_put_uint8_t(buf, 164, glb_status);
    _mav_put_uint8_t(buf, 165, using_yaw_flag);
    _mav_put_uint8_t(buf, 166, gps_status);
    _mav_put_uint8_t(buf, 167, rtk_net);
    _mav_put_uint8_t(buf, 168, t265_using_flag);
    _mav_put_uint8_t(buf, 169, t265_valid);
    _mav_put_uint8_t(buf, 170, mission_time);
    _mav_put_uint8_t(buf, 171, delay);

    _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_CHASSIS_LOG_DATA, buf, MAVLINK_MSG_ID_CHASSIS_LOG_DATA_MIN_LEN, MAVLINK_MSG_ID_CHASSIS_LOG_DATA_LEN, MAVLINK_MSG_ID_CHASSIS_LOG_DATA_CRC);
#else
    mavlink_chassis_log_data_t *packet = (mavlink_chassis_log_data_t *)msgbuf;
    packet->chassis_voltage_power = chassis_voltage_power;
    packet->chassis_voltage_ban = chassis_voltage_ban;
    packet->chassis_current_ban = chassis_current_ban;
    packet->chassis_current_guashui = chassis_current_guashui;
    packet->chassis_current_panshua = chassis_current_panshua;
    packet->chassis_current_diaodian = chassis_current_diaodian;
    packet->chassis_current_sucker_leg = chassis_current_sucker_leg;
    packet->chassis_current_brush1 = chassis_current_brush1;
    packet->chassis_current_brush2 = chassis_current_brush2;
    packet->chassis_current_brush3 = chassis_current_brush3;
    packet->chassis_current_brush4 = chassis_current_brush4;
    packet->chassis_pos_guashui = chassis_pos_guashui;
    packet->chassis_pos_panshua = chassis_pos_panshua;
    packet->chassis_pos_diaodian = chassis_pos_diaodian;
    packet->chassis_pos_sucker_leg = chassis_pos_sucker_leg;
    packet->chassis_chaosheng_up = chassis_chaosheng_up;
    packet->chassis_chaosheng_down = chassis_chaosheng_down;
    packet->tank_motor_speed_l = tank_motor_speed_l;
    packet->tank_motor_speed_r = tank_motor_speed_r;
    packet->tank_motor_current_l = tank_motor_current_l;
    packet->tank_motor_current_r = tank_motor_current_r;
    packet->tank_proximity_radar_top = tank_proximity_radar_top;
    packet->tank_proximity_radar_bottom = tank_proximity_radar_bottom;
    packet->tank_proximity_radar_left = tank_proximity_radar_left;
    packet->tank_proximity_radar_right = tank_proximity_radar_right;
    packet->tank_temp_fan = tank_temp_fan;
    packet->tank_system_cur = tank_system_cur;
    packet->tank_system_vol = tank_system_vol;
    packet->tank_pressure = tank_pressure;
    packet->tank_laser1 = tank_laser1;
    packet->tank_laser2 = tank_laser2;
    packet->tank_laser3 = tank_laser3;
    packet->windlass_recv_count_ground = windlass_recv_count_ground;
    packet->windlass_recv_count_uav = windlass_recv_count_uav;
    packet->windlass_alarm_num = windlass_alarm_num;
    packet->windlass_speed = windlass_speed;
    packet->windlass_voltage = windlass_voltage;
    packet->windlass_current = windlass_current;
    packet->windlass_position = windlass_position;
    packet->windlass_upperLimit = windlass_upperLimit;
    packet->windlass_lowerLimit = windlass_lowerLimit;
    packet->glb_status = glb_status;
    packet->using_yaw_flag = using_yaw_flag;
    packet->gps_status = gps_status;
    packet->rtk_net = rtk_net;
    packet->t265_using_flag = t265_using_flag;
    packet->t265_valid = t265_valid;
    packet->mission_time = mission_time;
    packet->delay = delay;

    _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_CHASSIS_LOG_DATA, (const char *)packet, MAVLINK_MSG_ID_CHASSIS_LOG_DATA_MIN_LEN, MAVLINK_MSG_ID_CHASSIS_LOG_DATA_LEN, MAVLINK_MSG_ID_CHASSIS_LOG_DATA_CRC);
#endif
}
#endif

#endif

// MESSAGE CHASSIS_LOG_DATA UNPACKING


/**
 * @brief Get field glb_status from chassis_log_data message
 *
 * @return  uint8_t
 */
static inline uint8_t mavlink_msg_chassis_log_data_get_glb_status(const mavlink_message_t* msg)
{
    return _MAV_RETURN_uint8_t(msg,  164);
}

/**
 * @brief Get field using_yaw_flag from chassis_log_data message
 *
 * @return  uint8_t
 */
static inline uint8_t mavlink_msg_chassis_log_data_get_using_yaw_flag(const mavlink_message_t* msg)
{
    return _MAV_RETURN_uint8_t(msg,  165);
}

/**
 * @brief Get field gps_status from chassis_log_data message
 *
 * @return  uint8_t
 */
static inline uint8_t mavlink_msg_chassis_log_data_get_gps_status(const mavlink_message_t* msg)
{
    return _MAV_RETURN_uint8_t(msg,  166);
}

/**
 * @brief Get field rtk_net from chassis_log_data message
 *
 * @return  uint8_t
 */
static inline uint8_t mavlink_msg_chassis_log_data_get_rtk_net(const mavlink_message_t* msg)
{
    return _MAV_RETURN_uint8_t(msg,  167);
}

/**
 * @brief Get field t265_using_flag from chassis_log_data message
 *
 * @return  uint8_t
 */
static inline uint8_t mavlink_msg_chassis_log_data_get_t265_using_flag(const mavlink_message_t* msg)
{
    return _MAV_RETURN_uint8_t(msg,  168);
}

/**
 * @brief Get field t265_valid from chassis_log_data message
 *
 * @return  uint8_t
 */
static inline uint8_t mavlink_msg_chassis_log_data_get_t265_valid(const mavlink_message_t* msg)
{
    return _MAV_RETURN_uint8_t(msg,  169);
}

/**
 * @brief Get field mission_time from chassis_log_data message
 *
 * @return  uint8_t
 */
static inline uint8_t mavlink_msg_chassis_log_data_get_mission_time(const mavlink_message_t* msg)
{
    return _MAV_RETURN_uint8_t(msg,  170);
}

/**
 * @brief Get field delay from chassis_log_data message
 *
 * @return  uint8_t
 */
static inline uint8_t mavlink_msg_chassis_log_data_get_delay(const mavlink_message_t* msg)
{
    return _MAV_RETURN_uint8_t(msg,  171);
}

/**
 * @brief Get field chassis_voltage_power from chassis_log_data message
 *
 * @return  float
 */
static inline float mavlink_msg_chassis_log_data_get_chassis_voltage_power(const mavlink_message_t* msg)
{
    return _MAV_RETURN_float(msg,  0);
}

/**
 * @brief Get field chassis_voltage_ban from chassis_log_data message
 *
 * @return  float
 */
static inline float mavlink_msg_chassis_log_data_get_chassis_voltage_ban(const mavlink_message_t* msg)
{
    return _MAV_RETURN_float(msg,  4);
}

/**
 * @brief Get field chassis_current_ban from chassis_log_data message
 *
 * @return  float
 */
static inline float mavlink_msg_chassis_log_data_get_chassis_current_ban(const mavlink_message_t* msg)
{
    return _MAV_RETURN_float(msg,  8);
}

/**
 * @brief Get field chassis_current_guashui from chassis_log_data message
 *
 * @return  float
 */
static inline float mavlink_msg_chassis_log_data_get_chassis_current_guashui(const mavlink_message_t* msg)
{
    return _MAV_RETURN_float(msg,  12);
}

/**
 * @brief Get field chassis_current_panshua from chassis_log_data message
 *
 * @return  float
 */
static inline float mavlink_msg_chassis_log_data_get_chassis_current_panshua(const mavlink_message_t* msg)
{
    return _MAV_RETURN_float(msg,  16);
}

/**
 * @brief Get field chassis_current_diaodian from chassis_log_data message
 *
 * @return  float
 */
static inline float mavlink_msg_chassis_log_data_get_chassis_current_diaodian(const mavlink_message_t* msg)
{
    return _MAV_RETURN_float(msg,  20);
}

/**
 * @brief Get field chassis_current_sucker_leg from chassis_log_data message
 *
 * @return  float
 */
static inline float mavlink_msg_chassis_log_data_get_chassis_current_sucker_leg(const mavlink_message_t* msg)
{
    return _MAV_RETURN_float(msg,  24);
}

/**
 * @brief Get field chassis_current_brush1 from chassis_log_data message
 *
 * @return  float
 */
static inline float mavlink_msg_chassis_log_data_get_chassis_current_brush1(const mavlink_message_t* msg)
{
    return _MAV_RETURN_float(msg,  28);
}

/**
 * @brief Get field chassis_current_brush2 from chassis_log_data message
 *
 * @return  float
 */
static inline float mavlink_msg_chassis_log_data_get_chassis_current_brush2(const mavlink_message_t* msg)
{
    return _MAV_RETURN_float(msg,  32);
}

/**
 * @brief Get field chassis_current_brush3 from chassis_log_data message
 *
 * @return  float
 */
static inline float mavlink_msg_chassis_log_data_get_chassis_current_brush3(const mavlink_message_t* msg)
{
    return _MAV_RETURN_float(msg,  36);
}

/**
 * @brief Get field chassis_current_brush4 from chassis_log_data message
 *
 * @return  float
 */
static inline float mavlink_msg_chassis_log_data_get_chassis_current_brush4(const mavlink_message_t* msg)
{
    return _MAV_RETURN_float(msg,  40);
}

/**
 * @brief Get field chassis_pos_guashui from chassis_log_data message
 *
 * @return  float
 */
static inline float mavlink_msg_chassis_log_data_get_chassis_pos_guashui(const mavlink_message_t* msg)
{
    return _MAV_RETURN_float(msg,  44);
}

/**
 * @brief Get field chassis_pos_panshua from chassis_log_data message
 *
 * @return  float
 */
static inline float mavlink_msg_chassis_log_data_get_chassis_pos_panshua(const mavlink_message_t* msg)
{
    return _MAV_RETURN_float(msg,  48);
}

/**
 * @brief Get field chassis_pos_diaodian from chassis_log_data message
 *
 * @return  float
 */
static inline float mavlink_msg_chassis_log_data_get_chassis_pos_diaodian(const mavlink_message_t* msg)
{
    return _MAV_RETURN_float(msg,  52);
}

/**
 * @brief Get field chassis_pos_sucker_leg from chassis_log_data message
 *
 * @return  float
 */
static inline float mavlink_msg_chassis_log_data_get_chassis_pos_sucker_leg(const mavlink_message_t* msg)
{
    return _MAV_RETURN_float(msg,  56);
}

/**
 * @brief Get field chassis_chaosheng_up from chassis_log_data message
 *
 * @return  float
 */
static inline float mavlink_msg_chassis_log_data_get_chassis_chaosheng_up(const mavlink_message_t* msg)
{
    return _MAV_RETURN_float(msg,  60);
}

/**
 * @brief Get field chassis_chaosheng_down from chassis_log_data message
 *
 * @return  float
 */
static inline float mavlink_msg_chassis_log_data_get_chassis_chaosheng_down(const mavlink_message_t* msg)
{
    return _MAV_RETURN_float(msg,  64);
}

/**
 * @brief Get field tank_motor_speed_l from chassis_log_data message
 *
 * @return  float
 */
static inline float mavlink_msg_chassis_log_data_get_tank_motor_speed_l(const mavlink_message_t* msg)
{
    return _MAV_RETURN_float(msg,  68);
}

/**
 * @brief Get field tank_motor_speed_r from chassis_log_data message
 *
 * @return  float
 */
static inline float mavlink_msg_chassis_log_data_get_tank_motor_speed_r(const mavlink_message_t* msg)
{
    return _MAV_RETURN_float(msg,  72);
}

/**
 * @brief Get field tank_motor_current_l from chassis_log_data message
 *
 * @return  float
 */
static inline float mavlink_msg_chassis_log_data_get_tank_motor_current_l(const mavlink_message_t* msg)
{
    return _MAV_RETURN_float(msg,  76);
}

/**
 * @brief Get field tank_motor_current_r from chassis_log_data message
 *
 * @return  float
 */
static inline float mavlink_msg_chassis_log_data_get_tank_motor_current_r(const mavlink_message_t* msg)
{
    return _MAV_RETURN_float(msg,  80);
}

/**
 * @brief Get field tank_proximity_radar_top from chassis_log_data message
 *
 * @return  float
 */
static inline float mavlink_msg_chassis_log_data_get_tank_proximity_radar_top(const mavlink_message_t* msg)
{
    return _MAV_RETURN_float(msg,  84);
}

/**
 * @brief Get field tank_proximity_radar_bottom from chassis_log_data message
 *
 * @return  float
 */
static inline float mavlink_msg_chassis_log_data_get_tank_proximity_radar_bottom(const mavlink_message_t* msg)
{
    return _MAV_RETURN_float(msg,  88);
}

/**
 * @brief Get field tank_proximity_radar_left from chassis_log_data message
 *
 * @return  float
 */
static inline float mavlink_msg_chassis_log_data_get_tank_proximity_radar_left(const mavlink_message_t* msg)
{
    return _MAV_RETURN_float(msg,  92);
}

/**
 * @brief Get field tank_proximity_radar_right from chassis_log_data message
 *
 * @return  float
 */
static inline float mavlink_msg_chassis_log_data_get_tank_proximity_radar_right(const mavlink_message_t* msg)
{
    return _MAV_RETURN_float(msg,  96);
}

/**
 * @brief Get field tank_temp_fan from chassis_log_data message
 *
 * @return  float
 */
static inline float mavlink_msg_chassis_log_data_get_tank_temp_fan(const mavlink_message_t* msg)
{
    return _MAV_RETURN_float(msg,  100);
}

/**
 * @brief Get field tank_system_cur from chassis_log_data message
 *
 * @return  float
 */
static inline float mavlink_msg_chassis_log_data_get_tank_system_cur(const mavlink_message_t* msg)
{
    return _MAV_RETURN_float(msg,  104);
}

/**
 * @brief Get field tank_system_vol from chassis_log_data message
 *
 * @return  float
 */
static inline float mavlink_msg_chassis_log_data_get_tank_system_vol(const mavlink_message_t* msg)
{
    return _MAV_RETURN_float(msg,  108);
}

/**
 * @brief Get field tank_pressure from chassis_log_data message
 *
 * @return  float
 */
static inline float mavlink_msg_chassis_log_data_get_tank_pressure(const mavlink_message_t* msg)
{
    return _MAV_RETURN_float(msg,  112);
}

/**
 * @brief Get field tank_laser1 from chassis_log_data message
 *
 * @return  float
 */
static inline float mavlink_msg_chassis_log_data_get_tank_laser1(const mavlink_message_t* msg)
{
    return _MAV_RETURN_float(msg,  116);
}

/**
 * @brief Get field tank_laser2 from chassis_log_data message
 *
 * @return  float
 */
static inline float mavlink_msg_chassis_log_data_get_tank_laser2(const mavlink_message_t* msg)
{
    return _MAV_RETURN_float(msg,  120);
}

/**
 * @brief Get field tank_laser3 from chassis_log_data message
 *
 * @return  float
 */
static inline float mavlink_msg_chassis_log_data_get_tank_laser3(const mavlink_message_t* msg)
{
    return _MAV_RETURN_float(msg,  124);
}

/**
 * @brief Get field windlass_recv_count_ground from chassis_log_data message
 *
 * @return  float
 */
static inline float mavlink_msg_chassis_log_data_get_windlass_recv_count_ground(const mavlink_message_t* msg)
{
    return _MAV_RETURN_float(msg,  128);
}

/**
 * @brief Get field windlass_recv_count_uav from chassis_log_data message
 *
 * @return  float
 */
static inline float mavlink_msg_chassis_log_data_get_windlass_recv_count_uav(const mavlink_message_t* msg)
{
    return _MAV_RETURN_float(msg,  132);
}

/**
 * @brief Get field windlass_alarm_num from chassis_log_data message
 *
 * @return  float
 */
static inline float mavlink_msg_chassis_log_data_get_windlass_alarm_num(const mavlink_message_t* msg)
{
    return _MAV_RETURN_float(msg,  136);
}

/**
 * @brief Get field windlass_speed from chassis_log_data message
 *
 * @return  float
 */
static inline float mavlink_msg_chassis_log_data_get_windlass_speed(const mavlink_message_t* msg)
{
    return _MAV_RETURN_float(msg,  140);
}

/**
 * @brief Get field windlass_voltage from chassis_log_data message
 *
 * @return  float
 */
static inline float mavlink_msg_chassis_log_data_get_windlass_voltage(const mavlink_message_t* msg)
{
    return _MAV_RETURN_float(msg,  144);
}

/**
 * @brief Get field windlass_current from chassis_log_data message
 *
 * @return  float
 */
static inline float mavlink_msg_chassis_log_data_get_windlass_current(const mavlink_message_t* msg)
{
    return _MAV_RETURN_float(msg,  148);
}

/**
 * @brief Get field windlass_position from chassis_log_data message
 *
 * @return  float
 */
static inline float mavlink_msg_chassis_log_data_get_windlass_position(const mavlink_message_t* msg)
{
    return _MAV_RETURN_float(msg,  152);
}

/**
 * @brief Get field windlass_upperLimit from chassis_log_data message
 *
 * @return  float
 */
static inline float mavlink_msg_chassis_log_data_get_windlass_upperLimit(const mavlink_message_t* msg)
{
    return _MAV_RETURN_float(msg,  156);
}

/**
 * @brief Get field windlass_lowerLimit from chassis_log_data message
 *
 * @return  float
 */
static inline float mavlink_msg_chassis_log_data_get_windlass_lowerLimit(const mavlink_message_t* msg)
{
    return _MAV_RETURN_float(msg,  160);
}

/**
 * @brief Decode a chassis_log_data message into a struct
 *
 * @param msg The message to decode
 * @param chassis_log_data C-struct to decode the message contents into
 */
static inline void mavlink_msg_chassis_log_data_decode(const mavlink_message_t* msg, mavlink_chassis_log_data_t* chassis_log_data)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
    chassis_log_data->chassis_voltage_power = mavlink_msg_chassis_log_data_get_chassis_voltage_power(msg);
    chassis_log_data->chassis_voltage_ban = mavlink_msg_chassis_log_data_get_chassis_voltage_ban(msg);
    chassis_log_data->chassis_current_ban = mavlink_msg_chassis_log_data_get_chassis_current_ban(msg);
    chassis_log_data->chassis_current_guashui = mavlink_msg_chassis_log_data_get_chassis_current_guashui(msg);
    chassis_log_data->chassis_current_panshua = mavlink_msg_chassis_log_data_get_chassis_current_panshua(msg);
    chassis_log_data->chassis_current_diaodian = mavlink_msg_chassis_log_data_get_chassis_current_diaodian(msg);
    chassis_log_data->chassis_current_sucker_leg = mavlink_msg_chassis_log_data_get_chassis_current_sucker_leg(msg);
    chassis_log_data->chassis_current_brush1 = mavlink_msg_chassis_log_data_get_chassis_current_brush1(msg);
    chassis_log_data->chassis_current_brush2 = mavlink_msg_chassis_log_data_get_chassis_current_brush2(msg);
    chassis_log_data->chassis_current_brush3 = mavlink_msg_chassis_log_data_get_chassis_current_brush3(msg);
    chassis_log_data->chassis_current_brush4 = mavlink_msg_chassis_log_data_get_chassis_current_brush4(msg);
    chassis_log_data->chassis_pos_guashui = mavlink_msg_chassis_log_data_get_chassis_pos_guashui(msg);
    chassis_log_data->chassis_pos_panshua = mavlink_msg_chassis_log_data_get_chassis_pos_panshua(msg);
    chassis_log_data->chassis_pos_diaodian = mavlink_msg_chassis_log_data_get_chassis_pos_diaodian(msg);
    chassis_log_data->chassis_pos_sucker_leg = mavlink_msg_chassis_log_data_get_chassis_pos_sucker_leg(msg);
    chassis_log_data->chassis_chaosheng_up = mavlink_msg_chassis_log_data_get_chassis_chaosheng_up(msg);
    chassis_log_data->chassis_chaosheng_down = mavlink_msg_chassis_log_data_get_chassis_chaosheng_down(msg);
    chassis_log_data->tank_motor_speed_l = mavlink_msg_chassis_log_data_get_tank_motor_speed_l(msg);
    chassis_log_data->tank_motor_speed_r = mavlink_msg_chassis_log_data_get_tank_motor_speed_r(msg);
    chassis_log_data->tank_motor_current_l = mavlink_msg_chassis_log_data_get_tank_motor_current_l(msg);
    chassis_log_data->tank_motor_current_r = mavlink_msg_chassis_log_data_get_tank_motor_current_r(msg);
    chassis_log_data->tank_proximity_radar_top = mavlink_msg_chassis_log_data_get_tank_proximity_radar_top(msg);
    chassis_log_data->tank_proximity_radar_bottom = mavlink_msg_chassis_log_data_get_tank_proximity_radar_bottom(msg);
    chassis_log_data->tank_proximity_radar_left = mavlink_msg_chassis_log_data_get_tank_proximity_radar_left(msg);
    chassis_log_data->tank_proximity_radar_right = mavlink_msg_chassis_log_data_get_tank_proximity_radar_right(msg);
    chassis_log_data->tank_temp_fan = mavlink_msg_chassis_log_data_get_tank_temp_fan(msg);
    chassis_log_data->tank_system_cur = mavlink_msg_chassis_log_data_get_tank_system_cur(msg);
    chassis_log_data->tank_system_vol = mavlink_msg_chassis_log_data_get_tank_system_vol(msg);
    chassis_log_data->tank_pressure = mavlink_msg_chassis_log_data_get_tank_pressure(msg);
    chassis_log_data->tank_laser1 = mavlink_msg_chassis_log_data_get_tank_laser1(msg);
    chassis_log_data->tank_laser2 = mavlink_msg_chassis_log_data_get_tank_laser2(msg);
    chassis_log_data->tank_laser3 = mavlink_msg_chassis_log_data_get_tank_laser3(msg);
    chassis_log_data->windlass_recv_count_ground = mavlink_msg_chassis_log_data_get_windlass_recv_count_ground(msg);
    chassis_log_data->windlass_recv_count_uav = mavlink_msg_chassis_log_data_get_windlass_recv_count_uav(msg);
    chassis_log_data->windlass_alarm_num = mavlink_msg_chassis_log_data_get_windlass_alarm_num(msg);
    chassis_log_data->windlass_speed = mavlink_msg_chassis_log_data_get_windlass_speed(msg);
    chassis_log_data->windlass_voltage = mavlink_msg_chassis_log_data_get_windlass_voltage(msg);
    chassis_log_data->windlass_current = mavlink_msg_chassis_log_data_get_windlass_current(msg);
    chassis_log_data->windlass_position = mavlink_msg_chassis_log_data_get_windlass_position(msg);
    chassis_log_data->windlass_upperLimit = mavlink_msg_chassis_log_data_get_windlass_upperLimit(msg);
    chassis_log_data->windlass_lowerLimit = mavlink_msg_chassis_log_data_get_windlass_lowerLimit(msg);
    chassis_log_data->glb_status = mavlink_msg_chassis_log_data_get_glb_status(msg);
    chassis_log_data->using_yaw_flag = mavlink_msg_chassis_log_data_get_using_yaw_flag(msg);
    chassis_log_data->gps_status = mavlink_msg_chassis_log_data_get_gps_status(msg);
    chassis_log_data->rtk_net = mavlink_msg_chassis_log_data_get_rtk_net(msg);
    chassis_log_data->t265_using_flag = mavlink_msg_chassis_log_data_get_t265_using_flag(msg);
    chassis_log_data->t265_valid = mavlink_msg_chassis_log_data_get_t265_valid(msg);
    chassis_log_data->mission_time = mavlink_msg_chassis_log_data_get_mission_time(msg);
    chassis_log_data->delay = mavlink_msg_chassis_log_data_get_delay(msg);
#else
        uint8_t len = msg->len < MAVLINK_MSG_ID_CHASSIS_LOG_DATA_LEN? msg->len : MAVLINK_MSG_ID_CHASSIS_LOG_DATA_LEN;
        memset(chassis_log_data, 0, MAVLINK_MSG_ID_CHASSIS_LOG_DATA_LEN);
    memcpy(chassis_log_data, _MAV_PAYLOAD(msg), len);
#endif
}
